TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ
TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ
サーバサイドの言語として、python, Go など 多様な言語があります
フロント側が Single Page Application の場合は
TypeScriptで実装すると メリットが多いはずです
下記で登場した、TypeScriptのサーバサイドフレームワークと実装の違いを見ていきます
TypeScript のメリット – Front と Server の架け橋
サーバサイドフレームワーク
NestJS
Angularのような書き心地でコードが書けます
Decorator
でルーティングをします
class
ベースの実装です
Marble.js
RxJSのような書き心地でコードが書けます
chain
で一致させルーティングをします
functional
ベースの実装です
NestJS と Marble.js で書き比べ
NestJS
http://api.com/cats を get された場合
Decorator
で処理していく手法です
Get
のDecorator
をimport
し
findAll
-> this.catsService.findAll
の流れ
import { Get } from '@nestjs/common'; class CatsController { constructor(private readonly catsService: CatsService) {} @Get() async findAll(): Promise<Cat[]> { return this.catsService.findAll(); } }
Marble.js
http://api.com/me を get された場合
chain
で処理していく手法です
EffectFactory
からchain
し
matchPath
-> matchType
-> use(getMeEffect$)
の流れ
const getMe$ = EffectFactory .matchPath('/me') .matchType('GET') .use(getMeEffect$);
classベース と functionalベース
class
ベースの方が馴染みのある方が多いと思います
オブジェクト指向プログラミングは1兆ドル規模の大失敗なのか?
の影響もあり別の手法を知ることは良い事だと思います
functional
ベースのコードだと流れるようにコードリードができ
ポイントフリースタイルでの、テストのしやすさなどメリットがあります
まとめ
プログラミングは、料理に似ていると思っています
同じ素材を使い 同じ結果を 目指しても そこに至る過程 に違いが生まれます
class
ベース と functional
ベース 双方を比較して
雰囲気を掴んでもらえればと思います